# 导入相关类库  第三方扩展都在这里
from flask_bootstrap import Bootstrap
from flask_sqlalchemy import SQLAlchemy
from flask_mail import Mail
from flask_moment import Moment
from flask_migrate import Migrate
from flask_login import LoginManager
from flask_uploads import UploadSet, IMAGES,configure_uploads,patch_request_class

# 创建相关对象
bootstrap = Bootstrap()
db = SQLAlchemy()
mail = Mail()
moment = Moment()
migrate = Migrate(db=db)
loginmanager =LoginManager()
#使用上传图片的库
photos = UploadSet('photos',IMAGES)

# 完成相关初始化
def config_extensions(app):
    bootstrap.init_app(app)
    db.init_app(app)
    mail.init_app(app)
    moment.init_app(app)
    migrate.init_app((app))
    # 用户登录认证
    loginmanager.init_app(app)
    # 需要登录时的提示信息
    loginmanager.login_message = '需要登录才可以访问'
    # 指定登录端点
    loginmanager.login_view = 'user.login'
    # 设置session的保护级别
    # None不使用，basic基本的保护，strong最严格的保护
    loginmanager.session_protection = 'strong'
    # 设置上传图片时的一些参数 表示上传的图片
    configure_uploads(app,photos)
    # 指定上传文件的大小，默认为64m，若设置为None
    # 采用MAX_CONTENT_LENGTH
    patch_request_class(app,size=None)